<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // 简单数据类型又叫做基本数据类型或值类型，复杂数据类型有叫做引用类型
        // 值类型：string number boolean undefined null
        // 引用类型：在存储时，变量中的存储仅仅是地址 利用new 关键字创建的对象(系统对象，自定义对象) 如object Array Date
        // 简单数据类型null 返回空的对象 object 
        var title = null;
        console.log(typeof title);
        // 堆和栈
        // 简单数据类型存在栈中，里面直接开辟存储空间存放的是值。
        // 复杂数据类型存在堆中，首先在栈中存放地址 十六进制表示，然后这个地址指向堆里面的数据

        // 简单数据类型传参
        function fn(a) {
            a++;
            console.log(a);
        }
        var x = 10;
        fn(x);
        console.log(x);

        //复杂数据类型
        function Person(name) {
            this.name = name;
        }

        function f(x) {
            console.log(x.name); //刘德华
            x.name = '张学友';
            console.log(x.name); //张学友
        }
        var p = new Person('刘德华');
        console.log(p.name); //刘德华
        f(p);
        console.log(p.name); //张学友
    </script>
</body>

</html>